home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
CC_C
/
0696A.ZIP
/
ED9.C
< prev
next >
Wrap
Text File
|
1983-12-05
|
3KB
|
220 lines
/* ED9.C */
#include "ed0.c"
#include "ed1.ccc"
toupper(c) int c;
{
if ((c<'a')|(c>'z')) {
return(c);
}
else {
return(c-32);
}
}
tolower(c) int c;
{
if ((c<'A')|(c>'Z')) {
return(c);
}
else {
return(c+32);
}
}
number(args,val) char *args; int *val;
{
char c;
c= *args++;
if ((c<'0')|(c>'9')) {
return(NO);
}
*val=c-'0';
while (c= *args++) {
if ((c<'0')|(c>'9')) {
break;
}
*val=(*val*10)+c-'0';
}
return(YES);
}
ctoi(buf,index) char *buf; int index;
{
int k;
while ((buf[index]==' ')|
(buf[index]==TAB)){
index++;
}
k=0;
while ((buf[index]>='0')&(buf[index]<='9')) {
k=(k*10)+buf[index]-'0';
index++;
}
return(k);
}
max(m,n) int m,n;
{
if (m>=n) {
return(m);
}
else {
return(n);
}
}
min(m,n) int m,n;
{
if (m<=n) {
return(m);
}
else {
return(n);
}
}
putdec(n,w) int n,w;
{
char chars[10];
int i,nd;
nd=itoc(n,chars,10);
i=0;
while (i<nd) {
syscout(chars[i++]);
}
i=nd;
while (i++<w) {
syscout(' ');
}
}
itoc(n,str,size) int n; char *str; int size;
{
int absval;
int len;
int i,j,k;
absval=abs(n);
str[0]=0;
i=1;
while (i<size) {
str[i++]=(absval%10)+'0';
absval=absval/10;
if (absval==0) {
break;
}
}
if ((i<size)&(n<0)) {
str[i++]='-';
}
len=i-1;
i--;
j=0 ;
while (j<i) {
k=str[i];
str[i]=str[j];
str[j]=k;
i--;
j++;
}
return(len);
}
abs(n) int n;
{
if (n<0) {
return(-n);
}
else {
return(n);
}
}
syserr(s) char *s;
{
scr_chr_attr(SETBLINK);
pmtmess("system error: ",s);
scr_chr_attr(NOBLINK);
}
error(s) char *s;
{
scr_chr_attr(SETBLINK);
pmtmess("error: ",s);
scr_chr_attr(NOBLINK);
}
diskerr(s) char *s;
{
scr_chr_attr(SETBLINK);
pmtmess("disk error: ",s);
scr_chr_attr(NOBLINK);
}
readline(file,p,n) int file; char *p; int n;
{
int c;
int k;
k=0;
while (1) {
c=sysrdch(file);
if (c==ERR) {
return(ERR);
}
if (c==EOF) {
return(EOF);
}
if (c==CR) {
return(k);
}
if (k<n) {
*p++=c;
}
k++;
}
}
pushline(file,p,n) int file; char *p; int n;
{
while((n--)>0) {
if (syspshch(*p++,file)==ERR) {
return(ERR);
}
}
return(syspshch(CR,file));
}
popline(file,p,n) int file; char *p; int n;
{
int c;
int k, kmax, t;
c=syspopch(file);
if (c==EOF) {
return(EOF);
}
if (c==CR) {
*p++ =CR;
k=1;
}
else {
syserr("popline: missing CR");
return(ERR);
}
while (1) {
c=syspopch(file);
if (c==ERR) {
return(ERR);
}
if (c==EOF) {
break;
}
if (c==CR) {
if (syspshch(CR,file)==ERR) {
return(ERR);
}
break;
}
if (k<n) {
*p++ =c;
}
k++;
}
kmax=k;
k=min(k,n-1);
t=0;
while (k>t) {
c=p[k];
p[k]=p[t];
p[t]=c;
k--;
t++;
}
return(kmax);
}